1
Gestione della precisione e mitigazione degli overflow
AI018Lesson 3
00:00

In NumPy, Gestione della precisione è la scelta deliberata della profondità dei bit per bilanciare l'efficienza della memoria con la correttezza numerica. A differenza degli interi standard di Python che hanno precisione arbitraria, NumPy utilizza tipi C a dimensione fissa (ad esempio, int32_t, uint64_t).

1. L'hierarchia dei tipi

I tipi di dati di NumPy definiscono l'occupazione di memoria. Mentre np.int_() fornisce una dimensione dipendente dalla piattaforma, i sistemi robusti si basano su Alias a dimensione fissa (Tabella: Pagina 34) per garantire coerenza tra le diverse architetture hardware.

  • Interi:int8_t, int16_t, int32_t, int64_t.
  • Senza segno:uint8_t da uint64_t.
  • Puntatori:intptr_t, uintptr_t.

2. Strumenti di ispezione

Prima di eseguire operazioni aritmetiche, usa np.iinfo() e np.finfo() per ispezionare i limiti. Ad esempio, 1 + np.finfo(np.longdouble).eps identifica l'epsilon macchina—il valore limite oltre il quale le addizioni non modificano più il risultato.

Overflow degli interiLogica di wraparoundMassimo + 1 — MinimoVirgola mobileLogica di saturazioneSuperamento del massimo — infinito

3. Meccanismi dell'overflow

NumPy non solleva errori in caso di overflow; fallisce silenziosamente. Usando np.power(100, 8, dtype=np.int32) produce un troncamento, mentre float64 passa a inf. Usa np.issubdtype(d, np.floating) per validare le categorie prima delle operazioni.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>